/*
 * pid.h
 *
 *  Created on: Dec 31, 2023
 *      Author: 80424
 */

#ifndef INC_PID_H_
#define INC_PID_H_
#include "user_it_callback.h"
typedef struct{
	const float limit;	//输出限幅
	float target;	//目标量
	float feedback;	//反馈量
	float Kp;		//比例系数
	float Ki;		//积分系数
	float Kd;		//微分系数
	float error_sum;//误差积分
	float error_now;//当前误差
	float error_last;//上一次误差
	float out;
}PIDType;

extern PIDType POSE_PIDStruct;//定义PID引用参数
extern PIDType SPEED_PIDSreuct;//定义速度环参数
#define max(a, b)			(a>b? a:b) //取其大者
#define min(a, b)			(a<b? a:b)//取其小者
#define range(x, a, b)		(min(max(x, a), b))//输出限幅，输出值大于a,小于b
void pid_pos_update(PIDType *PID);

void low_pass_filter_init(void);
float low_pass_filter(float value);
#endif /* INC_PID_H_ */
